package com.qdairlines.service.user;

import java.util.List;

import com.qdairlines.entity.user.Role;
import com.qdairlines.entity.user.UserRoleDto;
import com.qdairlines.service.base.BaseService;
/**
 * 
 * @author pangyannan
 * @date 2017年4月18日
 * @company QingDao Airlines
 * @description 角色服务
 */
public interface RoleService extends BaseService<Role,Integer>{

	/**
	 * 根据用户工号查询用户所有的角色
	 * @param workcode
	 * @return
	 */
	List<Role> listRoleByWorkcode(String workcode);
	
	  /**
	   * 根据工号获取所有角色，包括未关联的角色, isRelated: Y or N
	   * @param workcode
	   * @param isRelated
	   * @return
	   */
	List<UserRoleDto> listUserRoleDtoByWorkcode(String workcode,String isRelated);
	
	/**
	 * 根据权限Code获取角色清单
	 * @param permissionCode
	 * @return
	 */
	List<Role> listRoleByPermissionCode(String permissionCode);
	
	
	  
	  /**
	   * 根据权限Code 获取角色名字符串  格式： "a,b,c"
	   * @param permissionCode
	   * @return
	   */
	  String getRoleNamesByPermissionCode(String permissionCode);
	  
	  /**
	   * 根据工号获取角色名List清单
	   * @param workcode
	   * @return
	   */
	  List<String> listRoleCodeByWorkcode(String workcode);
	  
	  /**
	   * 根据角色编码查询角色
	   * @param roleCode
	   * @return
	   */
	  Role getRoleByRoleCode(String roleCode);
	  
	  /**
	   * 根据角色名查询角色
	   * @param roleName
	   * @return
	   */
	  Role getRoleByRoleName(String roleName);
	  
	  /**
	   * 重写基类中的按主键删除方法，删除该角色后，相关联的人员角色、角色权限均被删除
	   */
	  int deleteByPrimaryKey(Integer roleId);
	  
	  
}
